//
//  CZStatusViewModel.swift
//  GZWeibo009
//
//  Created by gzxzmac on 16/3/25.
//  Copyright © 2016年 gzxzmac. All rights reserved.
//

import UIKit

class CZStatusModel: NSObject {
    // 单例
    static let sharedInstance: CZStatusModel = CZStatusModel()
    
    /**
     加载微博数据
     调用网络请求 API地址: http://open.weibo.com/wiki/2/statuses/home_timeline
     */
    func loadStatus(loadStatusCallback: (statuses: [CZStatus]?, error: NSError?) -> ()) {
        // url
        let urlString = "https://api.weibo.com/2/statuses/home_timeline.json"
        
        // 请求参数
        let parameters = ["access_token": CZUserAccoutModel.sharedInstance.userAccount!.access_token!]
        
        // 发送get 请求获取数据
        //        CZNetworkTool.sharedInstance.afnManager.GET(urlString, parameters: parameters, progress: nil, success: { (_, result) -> Void in
        //            CZPrint(msg: "请求微博数据完成了: \(result)")
        //            }) { (_, error) -> Void in
        //                CZPrint(msg: "请求微博数据失败了: \(error)")
        //        }
        CZNxetWorkTool.sharedInstance.requestGET(urlString, parameters: parameters) { (result, error) -> () in
            if error != nil {
                // 出现了错误
                loadStatusCallback(statuses: nil, error: error)
                return
            }
            
            // 没有出错,解析返回的数据中的 "statuses", statuses里面对应的是所有的微博数据
            // [[String: AnyObject]]: 数组,数组里面存的是字典类型的元素
            let statusesArray = result?["statuses"] as? [[String: AnyObject]]
            
            // 定义空数组来存放微博模型
            var statuses = [CZStatus]()
            
            // 遍历微博字典数组
            for dict in statusesArray! {
                // 字典转模型
                let status = CZStatus(dict: dict)
                statuses.append(status)
            }
            
            // 字典转模型完成了
            loadStatusCallback(statuses: statuses, error: nil)
        }
    }
}
